package com.util;

import com.javabean.User;
import com.service.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//4、书写测试
public class MyTest {
    @Test
    public void t1() {
        //加载spring核心配置文件 创建spring容器对象
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过配置文件的id从spring容器中获取对象
        UserService userService = (UserService) applicationContext.getBean("userService");
        //调用对象的方法
        userService.save();
    }
    @Test
    public void t2() {
        //SpringAPI介绍
        //ApplicationContext 是spring的一个接口 用于保存容器对象
        //实现类1 ClassPathXmlApplicationContext 从类路径（根目录）加载xml配置文件 创建spring容器对象
        //实现类2 FileSystemXmlApplicationContext 从文件目录（绝对路径）加载配置文件 创建spring容器对象
        //实现类3 AnnotationConfigApplicationContext 从注解加载配置文件 创建spring容器对象
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        //getBean()方法 是一个重载方法 可以通过字符串id 与class类型进行获取
        User u1 = (User) applicationContext.getBean("u1");
        System.out.println(u1);
        //通过类型进行匹配获取 从spring管理的所有类中 找到匹配类型的数据
        //但是如果交由spring管理的多个类中 有类型相似的 会导致无法识别获取错误
        User u2 = (User) applicationContext.getBean("u2");
        System.out.println(u2);
    }
    @Test
    public void t3() {
        //加载spring核心配置文件 创建spring容器对象
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过配置文件的id从spring容器中获取对象
        UserService userService = (UserService) applicationContext.getBean("u2");
        //调用对象的方法
        System.out.println("u2");
    }
}
